
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <!-- Slide meta data, remove/edit as you see fit -->
    <title>Googlecode で始める Android 開発</title>
    <meta name="generator" content="Organic" />
    <meta name="author" content="Jordi Boggiano" />
    <meta name="company" content="Nelmio AG" />
    <meta name="email" content="j.boggiano@seld.be" />
    <meta name="date" content="2010-05-30" />
    <meta name="venue" content="The Internets" />
    <!-- Slippy core file and dependencies -->
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/jquery.history.js"></script>
    <script type="text/javascript" src="js/slippy.js"></script>
    <!-- Slippy structural styles -->
    <link type="text/css" rel="stylesheet" href="css/slippy.css"/>
    <!-- private styles -->
    <link type="text/css" rel="stylesheet" href="css/private.css"/>
    <!-- Slippy theme -->
    <link type="text/css" rel="stylesheet" href="css/slippy-pure.css"/>
    <!-- Syntax highlighting core file  -->
    <script type="text/javascript" src="highlighter/shCore.js"></script>
    <!-- Syntax highlighting brushes, remove those you don't need -->
    <script type="text/javascript" src="highlighter/shBrushJScript.js"></script>
    <script type="text/javascript" src="highlighter/shBrushXml.js"></script>
    <script type="text/javascript" src="highlighter/shBrushJava.js"></script>
    <script type="text/javascript" src="highlighter/shBrushRuby.js"></script>
    <!-- Syntax highlighting styles-->
    <link type="text/css" rel="stylesheet" href="highlighter/shCore.css"/>
    <link type="text/css" rel="stylesheet" href="highlighter/shThemeEmacs.css"/>
    <!-- Slippy init code -->
    <script type="text/javascript">
      $(function() {
      $(".slide").slippy({});
      SyntaxHighlighter.all();
      });
    </script>
    <!-- Custom style for this deck -->
    <style type="text/css">
      .slide.nofooter {
      border: 0;
      background: 0;
      }
    </style>
  </head>
  <body>
    <div class="slide">
      <p class="author"> ＰＪ推一　小崎 玄顕</p> 
      <p class="date">平成23年11月22日(火)</p>
    </div>

    <div class="slide">
      <h2>目次</h2>
      <ul>
        <li style="margin-bottom:10px;font-weight:bold;">Subversionとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>開発サイクル</li>
        </ul>
        <li style="margin-bottom:10px;font-weight:bold;">Googlecodeとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>チュートリアル</li>
        </ul>
        <li style="margin-bottom:10px;font-weight:bold;">開発の手順</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>前提となる開発環境</li>
          <li>チケット駆動について</li>
          <li>運用ルール</li>
        </ul>
      </ul>
    </div>

    <div class="slide">
      <h2>subversion とは？</h2>
      <p>公式サイト ⇒ <a href="http://subversion.apache.org/">http://subversion.apache.org/</a> </p>
      <blockquote cite="http://subversion.apache.org/">
        <p>
          Subversion exists to be universally recognized and adopted as an open-source,
          centralized version control system characterized by
            its reliability as a safe haven for valuable data;
            the simplicity of its model and usage;
            and its ability to support the needs of a wide variety of users and projects,
            from individuals to large-scale enterprise operations.
       </p>
      </blockquote>
      <div align="center"><img src="img/DontCare.jpg" class="incremental" alt="" /></div>
    </div>
    
    <div class="slide">
      <h2>subversion概要</h2>
      <img src="img/subversion.png" class="" alt="" />
    </div>
    
    <div class="slide">
      <h2>よく使われる用語とそのいい加減な説明</h2>
      <dl>
        <dt>リポジトリ</dt>
          <dd>ソースコードが管理されてる場所。遠くのどこか</dd>
        <dt>チェックアウト</dt>
          <dd>リポジトリのソースコードを自分のPCにコピーすること</dd>
        <dt>作業コピー</dt>
          <dd>チェックアウトした結果自分のPCにコピーされたソースコード</dd>
        <dt>コミット、チェックイン</dt>
          <dd>修正した作業コピーの内容をリポジトリにアップロードすること</dd>
      </dl>

    </div>
    
    <div class="slide">
      <h2>Subversion での開発サイクル</h2>
      <ul style="line-height:1.3;">
        <li>最初の１回だけ <span style="color:red;">svn checkout</span></li>
        <li style="margin-bottom:15px;list-style:none;">手元に作業コピーを作ったら、以降はそこでずっと作業</li>
        <li>常に「手元の作業コピーが最新か？」と注意して下さい。</li>
        <li style="margin-bottom:15px;list-style:none;">リポジトリの内容はどんどん変更されます</li>
        <li style="margin-bottom:15px;"><span style="color:red;">svn update</span> でリポジトリの内容を頻繁に再取得。このとき</li>
        <div style="font-size:80%;">
        <ul style="list-style:square;">
          <li>リポジトリ中でのみ変更されたファイル</li>
          <li style="margin-bottom:10px;list-style:none"> ⇒ 手元に自動的に反映されます</li>
          <li>手元のファイルは修正したが、リポジトリの内容は元のまま</li>
          <li style="margin-bottom:10px;list-style:none"> ⇒ 何も起こらない（変更前に戻ったりはしない）</li>
          <li>リポジトリ中のファイルを誰かが変更、同時に自分も修正していた</li>
          <li style="margin-bottom:10px;list-style:none"> ⇒ コンフリクト（競合）発生！</li>
        </ul>
        </div>
        <li>ファイルのコミットは「早いもの勝ち」です。競合が発生したらマージして下さい</li>
      </ul>
    </div>

    <div class="slide">
      <h2>Subversion での開発サイクル</h2>
      <ul style="line-height:1.3;">
        <li  style="margin-bottom:15px;">作業コピーの内容を修正し、テストにパスしたら <span style="color:red;">svn commit</span></li>
        <li>残念ながらここでもコンフリクトが発生する可能性があります。</li>
        <li style="margin-bottom:15px;list-style:none;">再び頑張ってマージしましょう。</li>
      </ul>
    </div>
    
    <div class="slide">
      <h2>目次</h2>
      <ul>
        <div style="color:silver;">
        <li style="margin-bottom:10px;font-weight:bold;">Subversionとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>開発サイクル</li>
        </ul>
        </div>
        <li style="margin-bottom:10px;font-weight:bold;">Googlecodeとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>チュートリアル</li>
        </ul>
        <div style="color:silver;">
        <li style="margin-bottom:10px;font-weight:bold;">開発の手順</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>前提となる開発環境</li>
          <li>チケット駆動について</li>
          <li>運用ルール</li>
        </ul>
        </div>
      </ul>
    </div>

    <div class="slide">
      <h2>Googlecode とは？</h2>
      <p>公式サイト ⇒ <a href="http://code.google.com/intl/ja/">http://code.google.com/intl/ja/</a> </p>
      <blockquote cite="http://code.google.com/p/support/">
        <p>
Support the open source community by providing a scalable, reliable, and fast collaborative development environment for open source software, docs, and standards that promotes best practices in open source software engineering.
        </p>
      </blockquote>
      <div align="center"><img src="img/DontCare.jpg" class="incremental" alt="" /></div>
      <div class="incremental" style="text-align:center;font-size:200%;">くどい</div>
    </div>

    <div class="slide">
      <div style="text-align:center;font-size:200%;margin-top:3em;">
        <p>実際に使ってみよう</p>
      </div>
    </div>
    
    <div class="slide">
      <h2>トップページ (<a href="http://code.google.com/intl/ja/">http://code.google.com/intl/ja/</a>)</h2>
      <img src="./img/googlecode-toppage.png" class="" alt="googlecode_top" />
    </div>

    <div class="slide">
      <h2>ログイン画面</h2>
      <img src="img/googlecode-login.png" class="" alt="googlecode_login" />
    </div>

    <div class="slide">
      <h2>お気に入り</h2>
      <img src="img/googlecode-favorites.png" class="" alt="search_project" />
    </div>

    <div class="slide">
      <h2>プロジェクトトップページ</h2>
      <img src="img/googlecode-project-top.png" class="" alt="find it!" />
    </div>

    <div class="slide">
      <h2>Wikiページ</h2>
      <img src="img/googlecode-wikipage.png" class="" alt="difficut to find" />
    </div>

    <div class="slide">
      <h2>Wikiページの作成</h2>
      <img src="img/googlecode-edit-wikipage.png" class="" alt="project top" />
    </div>

    <div class="slide">
      <h2>Wikiページできた</h2>
      <img src="img/googlecode-wikipage2.png" class="" alt="checkout step1" />
    </div>

    <div class="slide">
      <h2>WikiページもSubversionで管理されている</h2>
      <img src="img/googlecode-wikipage3.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>チェックアウトして編集できる</h2>
      <img src="img/googlecode-wiki-checkout.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>Issues（課題）ページ</h2>
      <img src="img/googlecode-issues.png" class="" alt="checkout step2" />
    </div>

    <div class="slide">
      <h2>タスクを登録する</h2>
      <img src="img/googlecode-input-issue1.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>タスクを登録する</h2>
      <img src="img/googlecode-input-issue2.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>登録されたタスク</h2>
      <img src="img/googlecode-show-issue.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>タスクの一覧</h2>
      <img src="img/googlecode-list-issues.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>ソースコードのページ</h2>
      <img src="img/googlecode-source-page.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>それではわからん人は？</h2>
      <p>みんな大好き Eclipse で</p>
      <img src="img/eclipse-import1x.png" class="" alt="import" />
    </div>

    <div class="slide">
      <h2>Eclipse のプロジェクトとしてチェックアウトするよ</h2>
      <p>SVNプラグインはインストール済みですね。</p>
      <img src="img/eclipse-import2x.png" class="" alt="import" />
    </div>

    <div class="slide">
      <h2>お客さん、初めてかい？</h2>
      <img src="img/eclipse-import3x.png" class="" alt="import" />
    </div>

    <div class="slide">
      <h2>ロケーションの選択</h2>
      <img src="img/eclipse-import4x.png" class="" alt="" />
      <div style="background:white;border:solid 1px;margin-top:10px;">
      <dl>
        <dt>URL</dt><dd>Source ページ記載の URLから /trunk を除いたもの</dd>
      </dl>
      </div>
    </div>

    <div class="slide">
      <h2>trunkを選ぶ</h2>
      <img src="img/eclipse-import5x.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>デフォルトで文句がなければ次へ</h2>
      <img src="img/eclipse-import6x.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>だから文句ないってばよ</h2>
      <img src="img/eclipse-import7x.png" class="" alt="" />
    </div>

    <!--
    <div class="slide">
      <h2>ようやくインポート</h2>
      <img src="img/eclipse-import4.png" class="" alt="import" />
    </div>

    <div class="slide">
      <h2>trunkをチェックアウト</h2>
      <img src="img/eclipse-import5.png" class="" alt="select profile" />
    </div>

    <div class="slide">
      <h2>デフォルトでおけー</h2>
      <img src="img/eclipse-import6.png" class="" alt="select profile" />
    </div>

    <div class="slide">
      <h2>デフォルトでおけー</h2>
      <img src="img/eclipse-import7.png" class="" alt="select profile" />
    </div>
    -->
    <div class="slide">
      <h2>できあがり</h2>
      <img src="img/eclipse-import8x.png" class="" alt="select profile" />
    </div>

    <div class="slide">
      <h2>コードの修正は普通に実施</h2>
      <img src="img/kakimushiru.jpg" class="" alt="" />
      <p class="incremental">普通ですね。。。</p>
    </div>

    <div class="slide">
      <h2>完成！</h2>
      <img src="img/complete-modification.png" class="" alt="" width="60%" />
    </div>

    <div class="slide">
      <h2>修正が済んだらコミットします</h2>
      <p>その手順は以下の通り</p>
      <ol style="line-height:1.4em;">
        <li>どのソースを修正したのかを確認 (svn status)</li>
        <li>修正した内容を確認 (svn diff)</li>
        <li>リポジトリから最新のソースを取得 (svn update)</li>
        <li>必要に応じてマージ (基本手作業)</li>
        <li>マージしたソースが想定通りに動くか確認 (こいつも手作業)</li>
        <li>リポジトリに必要なファイルを追加 (svn add)</li>
        <li>修正内容をコミット (svn commit)</li>
        <li>タスクをクローズ <br />commit ログに (Fixes Issue 001) など書く</li>
      </ol>
    </div>

    <div class="slide">
      <h2>どのソースを修正したかを確認</h2>
      <img src="img/svn-status.png" class="" alt=""/>
    </div>

    <div class="slide">
      <h2>修正した内容を確認</h2>
      <img src="img/svn-diff.png" class="" alt="" />
    </div>
    
    <div class="slide">
      <h2>リポジトリから最新を取得</h2>
      <img src="img/svn-update.png" class="" alt=""/>
    </div>

    <div class="slide">
      <h2>修正内容をコミット</h2>
      <img src="img/svn-commit.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>多分この辺でパスワードを聞かれます。</h2>
      <p>googlecode で使用するパスワードは通常の gmail 等で利用しているパスワードとは別です。</p>
      <p>profileページを参照して下さい。</p>
    </div>

    <div class="slide">
      <h2>Profileページってどこぉ？</h2>
      <img src="img/googlecode-project-top2.png" class="" alt="select profile" />
    </div>

    <div class="slide">
      <h2>パスワードを確認</h2>
      <img src="img/googlecode-profile-page.png" class="" alt="select profile" />
    </div>

    <div class="slide">
      <h2>コミットできた</h2>
      <img src="img/svn-commit2.png" class="" alt=""/>
    </div>

    <div class="slide">
      <h2>Googlecode ウェブ画面でも確認</h2>
      <img src="img/googlecode-source-changes.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>Issue のステータスはクローズされている</h2>
      <img src="img/googlecode-issue-close.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>Issue をクローズしたリビジョンもわかる</h2>
      <img src="img/googlecode-issue-details.png" class="" alt="" />
    </div>

    <div class="slide">
      <h2>目次</h2>
      <ul>
        <div style="color:silver;">
        <li style="margin-bottom:10px;font-weight:bold;">Subversionとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>開発サイクル</li>
        </ul>
        </div>
        <div style="color:silver;">
        <li style="margin-bottom:10px;font-weight:bold;">Googlecodeとは</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>概要</li>
          <li>チュートリアル</li>
        </ul>
        </div>
        <li style="margin-bottom:10px;font-weight:bold;">開発の手順</li>
        <ul style="list-style:square;margin-bottom:15px;">
          <li>前提となる開発環境</li>
          <li>チケット駆動について</li>
          <li>運用ルール</li>
        </ul>
      </ul>
    </div>

    <div class="slide">
      <h2>前提となる開発環境</h2>
      <ul>
        <li>Eclipse (Helios) + Java 1.6</li>
        <li style="list-style:none;margin-bottom:15px;">
          Indigo でもいいけど、Java のバージョンは 1.6 にしておきましょう</li>
        <li>Android SDK (revision 15)</li>
        <li style="list-style:none;margin-bottom:15px;">
          どうせ勝手にアップデートされます(ADTプラグイン含めて)。</li>
        <li>Eclipse ADT Plugin</li>
        <li>Eclipse Subversion Plugin (Subclipse)</li>
        <li style="list-style:none;margin-bottom:15px;">
          一括してインストールした人は Subclipse みたい。なくても困らない。
        </li>
      </ul>
    </div>

    <div class="slide">
      <h2>環境設定の取り決め</h2>
      <p>Eclipse の設定</p>
      <table>
        <tr>
          <th>設定項目</th><th>設定内容</th>
        </tr>
        <tr>
          <td>一般→<br />ネットワーク接続</td>
          <td>社内PROXY越しの人は<br /> HTTP, HTTPS に 10.1.0.1:80 を設定</td>
        </tr>
        <tr>
          <td>Java→<br />コードスタイル</td>
          <td>デフォルトのまま。<br />フォーマッタも Eclipse[ビルドイン]のままとする</td>
        </tr>
      </table>
      <br />
      <p>Subversionの設定</p>
      <table>
        <tr>
          <th>config設定項目</th><th>設定内容</th>
        </tr>
        <tr>
          <td>enable-auto-props</td>
          <td>yes</td>
        </tr>
        <tr>
          <td>[auto-props]セクション</td>
          <td>*.xml = svn:eol-style=native<br />*.java = svn:eol-style=native</td>
        </tr>
        <tr>
          <th>server設定項目</th><th>設定内容</th>
        </tr>
        <tr>
          <td>[global]セクション</td>
          <td>http-proxy-host = 10.1.0.1<br />http-proxy-port = 80</td>
        </tr>
      </table>
      <p>設定場所<br /> <span style="font-size:80%;">C:\Documents and Settings\&lt;User Name&gt;\Application Data\Subversion</span></p>
    </div>

    <div class="slide">
      <h2>共同開発する上でのルール(これから相談か)</h2>
      <ul>
        <li>手元で動くソースをコミットする</li>
        <li>コミットログには、なぜその修正をしたのかを書く <br />
            変更内容を一言で 1行書いて、改行を 1行空けて詳しい内容を書く</li>
        <li>Issue に対応するコミットは (Fixes Issue NNN) とコメントして後から追跡できるようにする</li>
        <li>色んな変更を一気にコミットしない</li>
        <li>ソースコードを見ればわかるようなことは書かない</li>
      </ul>
    </div>

    <div class="layout" data-name="default">
      <h1>Googlecode で始める Android 開発</h1>
      <content></content>
    </div>

    <div class="layout nofooter" data-name="alt">
      <content></content>
    </div>
  </body>
</html>
